package com.qianfeng.ls.service.impl;

import com.qianfeng.ls.entity.RoleEntity;
import com.qianfeng.ls.mapper.RoleMapper;
import com.qianfeng.ls.pojo.RolePojo;
import com.qianfeng.ls.service.IRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class RoleServiceImpl implements IRoleService {

    @Autowired
    RoleMapper roleMapper;

    /**
     * 查询所有的角色信息
     * @return
     */
    public List<RolePojo> queryRoles(RoleEntity re) {
        return roleMapper.queryRoles(re);
    }


    /**
     * 添加角色信息
     * @param re
     * @return
     */
    public boolean addRole(RoleEntity re){

        //1:添加角色的基础信息;
        boolean flag = roleMapper.addRole(re);

        //2:给角色指定权限信息;
        //为什么通过re可以直接获取rid,因为我们mapper设置了主键回填
        //insert into shop_admin(a,a) values(),(),()
        return roleMapper.addRoleAuths(re);
    }

    /**
     * 根据角色id查询角色和权限信息
     * @param rid
     * @return
     */
    public RolePojo queryRoleById(int rid){
        return roleMapper.queryRoleById(rid);
    }

    /**
     * 对角色进行编辑
     * @param re
     * @return
     */
    public boolean editRole(RoleEntity re){

        //1: 修改角色信息
        roleMapper.editRole(re);

        //2: 清空当前角色的权限信息
        roleMapper.unbindAuth(re.getRid());

        //3: 重新绑定角色的权限信息
        roleMapper.addRoleAuths(re); //


        return true;
    }
}
